1. Field of the Invention
The present invention relates to a graphical user interface design tool for creating interactive graphical user interfaces for hardware instruments and real-time systems such as VCRs, digital voltmeters, automobiles, and the like.
2. Description of the Prior Art
Most consumer products require some type of user interface. For example, automobiles have a speedometer and a steering wheel, while VCRs have switches and knobs and digital voltmeters have pushbuttons and LED read-outs. Such user interfaces often determine the market success of a consumer product because it is the primary point of interaction between the consumer product and the end user. As a result, without a user interface which enables the end user to properly interact with the product, even a technologically sound product will be rendered virtually useless to the end user.
To overcome this problem, product developers have often created physical prototypes which they employ to test the usability of the product and the product's interface. Typically, this is done before the product goes into final production. However, since creating a physical prototype requires the manufacture of physical components, building a physical prototype is an expensive and slow process. In fact, since the prototype often cannot be built until the underlying product is operational, the interface to the user has often delayed the introduction of the product.
In an effort to save time and money, product developers have relatively recently begun to create graphical, software versions of their interfaces that may be employed to test the usability of their proposed product and interface. While such "simulated" user interfaces have sped up the prototyping process, such "simulated" user interfaces have also taken a great deal of time to create. Moreover, such "simulated" user interfaces have required computer graphics experts for their creation. In the face of the increasing software cost for the development of many consumer products, the use of computer graphics experts to create such "simulated" user interfaces is no longer cost effective.
A number of software tools, such as prototyping tools, system modeling tools, and system simulation tools have been used by such computer graphics experts for creating such "simulated" user interfaces in order to prove concepts and test ideas with end users. Such tools typically provide some form of animation of the models created so that the system "runs" in a manner similar to the final system. Such systems thus permit the product developer to build a "running" model of a proposed system to show to an end user in order to get feedback on the product requirements. Ideally, such a system provides the "running" model without requiring additional "code" to be written while also providing the product developer with some aids for partitioning the system into its eventual hardware and software components. However, since the animation of a such a "simulated" prototype is provided by specifying the system behavior via unique, proprietary languages that must be learned by the product developer or implemented by a computer graphics expert, the resulting system is not reusable as the product moves into implementation, typically does not allow the developer to readily create custom graphics, and unduly adds to the expense of product development.
More recently, graphics systems have been developed that allow product developers to graphically create user interfaces by picking and placing pre-programmed graphical user interface components such as sliders or knobs on the display screen. However, the number of components available for such prior art systems is limited and the behavior of the interface components is limited to what the original creator of the components required. As a result, if a new or custom component needs to be added, then a graphics programming expert is still required to create the custom component. Also, the existing interface components of such systems are very difficult to change or modify.
Such prior art graphics tools are typically referred to as user interface toolkits, user interface builders, and user interface management systems. Such graphics tools aid the product developer with the creation of screen-oriented human interfaces which the product developer can then use to create the actual interface to be included with the product. Development of such screen-oriented human interfaces has been simplified by providing automatic generation of the code required to create a "production" interface; however, such graphics tools are specifically designed to meet the needs of only those product developers creating applications that have screen-oriented interfaces, as is typical of information systems. A system with a more general purpose application is desired.
The latest prior art graphics systems allow product developers to create output behavior (animation) for user interface objects by drawing the object with a graphical editor and then animating the object by textual description. Such systems require the input behavior (such as how the graphical object receives and processes mouse or keyboard events) to be described textually or using some type of computer language. These input objects have also been limited to several specific types of input objects such as sliders or knobs. For example, a system of this type referred to as the SL-Graphical Modeling System (SL-GMS.RTM.) is available from SL Corporation. The SL-GMS.RTM. system purportedly allows programmers and non-programmers to use a drawing tool to design portable application interfaces, to connect screen objects to external data sources, to animate screen objects to reflect real-time changes in application data, and to use screen objects to control the application.
The SL-GMS.RTM. system is a development system for use in building and managing graphics screens that can be embedded in a user application. The SL-GMS.RTM. system uses object-oriented architecture to provide direct, table-driven access to application data and over 40 pre-defined actions for screen objects. A drawing tool is also provided for creation of custom screen objects using a set of "building blocks" that the developer can use for modifications and extensions by calls to a function library. A mouse-driven graphics editor is also provided which allows users to create graphical objects and to position them on the screen. For example, a meter or gauge can be constructed from objects such as rectangles, lines and text. Once created, the appearance of each object can be modified by using the graphics editor to vary such standard graphical attributes as color, line width, fill percent and style, size, rotation, position and text font. Graphical attributes which can be specified by the graphics editor of the SL-GMS.RTM. system can also be modified dynamically to reflect changes in external data. For example, this may be accomplished by causing the needle of a meter to rotate within a specified range as an external data variable changes. Also, a hierarchical, object-oriented approach is used to allow properties to be attached to all "instances" of the graphics elements. Functions then may be specified by the graphics editor to animate screen objects by establishing direct connections between the screen elements and application database variables. In this manner, screen objects may be animated using real-time data by the approximately 40 graphical action attributes allowed by the system. However, the SL-GMS.RTM. system is limited in that the output and input behavior must be described textually. An improved system is thus still desired which may be easily used by direct manipulation.
Other systems, such as the Dataviews.RTM. Graphics Software from V.I. Corporation, the Virtual Prototyping System (VAPS.RTM.) from Virtual Prototypes, Inc., the AC-100 System from Integrated Systems, Inc., and the Action|.RTM. System from ExperTelligence, Inc., have also been developed to allow a user to provide animated graphics in response to outputs from an application program. However, none of these systems allow definition of graphical input or output to the system in a completely graphical way. A system which is easy to use by direct manipulation of the objects is still desired.
In addition to their difficulty of use, prior art graphical prototype development systems also have limitations in that they cannot break up hierarchial objects into their smaller components and cannot connect application code while the graphics editor is running. In addition, libraries of components have been difficult to use and create. A system with these and other features which is simple, easy to learn and flexible is desired. The present invention has been designed to meet these needs.